using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Common;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessEntity
{
	/// <summary>
	/// Entidade de negocio
	/// </summary>
	public class FaixaCorretagem : BaseBusinessEntity
	{
		#region Construtor
		
		/// <summary>
		/// Construtor Padrão
		/// </summary>
		public FaixaCorretagem()
		{
			
		}
		
		/// <summary>
		/// Construtor Parâmetros
		/// </summary>
        public FaixaCorretagem(DateTime? dataFinal, DateTime? dataInicial, int? numeroFaixa, decimal? percentualAliquota, decimal? valorAcrescimo, decimal? valorInferior, decimal? valorSuperior)
		{
			this.DataFinal = dataFinal;
            this.DataInicial = dataInicial;
            this.NumeroFaixa = numeroFaixa;
            this.PercentualAliquota = percentualAliquota;
            this.ValorAcrescimo = valorAcrescimo;
            this.ValorInferior = valorInferior;
            this.ValorSuperior = valorSuperior;
		}
		
		#endregion
		#region Campos

        private const int RSDATAFINAL = 109457;
        private const int RSDATAINICIAL = 109456;
        private const int RSNUMEROFAIXA = 109385;
        private const int RSPERCENTUALALIQUOTA = 109446;
        private const int RSVALORACRESCIMO = 109459;
        private const int RSVALORINFERIOR = 109386;
        private const int RSVALORSUPERIOR = 109458;

        private DateTime? _dataFinal;
        private DateTime? _dataInicial;
        private int? _numeroFaixa;
        private decimal? _percentualAliquota;
        private decimal? _valorAcrescimo;
        private decimal? _valorInferior;
        private decimal? _valorSuperior;

		#endregion
		#region Propriedades
        /// <summary>
        /// Data Final
        /// </summary>
        [NotNull(RSDATAFINAL)]
        public DateTime? DataFinal
        {
            get { return _dataFinal; }
            set { _dataFinal = value; }
        }

        /// <summary>
        /// Data Inicial
        /// </summary>
        [NotNull(RSDATAINICIAL)]
        public DateTime? DataInicial
        {
            get { return _dataInicial; }
            set { _dataInicial = value; }
        }

        /// <summary>
        /// Numero Faixa
        /// </summary>
        [NotNull(RSNUMEROFAIXA)]
        public int? NumeroFaixa
        {
            get { return _numeroFaixa; }
            set { _numeroFaixa = value; }
        }

        /// <summary>
        /// Percentual aliqouta
        /// </summary>
        [NotNull(RSPERCENTUALALIQUOTA)]
        public decimal? PercentualAliquota
        {
            get { return _percentualAliquota; }
            set { _percentualAliquota = value; }
        }

        /// <summary>
        /// Valor Acrescimo
        /// </summary>
        [NotNull(RSVALORACRESCIMO)]
        public decimal? ValorAcrescimo
        {
            get { return _valorAcrescimo; }
            set { _valorAcrescimo = value; }
        }

        /// <summary>
        /// Valor Inferior
        /// </summary>
        [NotNull(RSVALORINFERIOR)]
        public decimal? ValorInferior
        {
            get { return _valorInferior; }
            set { _valorInferior = value; }
        }

        /// <summary>
        /// Valor Superior
        /// </summary>
        [NotNull(RSVALORSUPERIOR)]
        public decimal? ValorSuperior
        {
            get { return _valorSuperior; }
            set { _valorSuperior = value; }
        }

		#endregion
	}
}

